package cn.limbo.myandserver.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.annotation.Nullable;

import cn.limbo.myandserver.model.FileModel;
import cn.limbo.myandserver.model.User;

/**
 * 数据库辅助操作类
 */
public class DatabaseHelper extends SQLiteOpenHelper {

    // 数据库版本号
    private static final Integer VERSION = 1;

    /**
     * 构造函数
     * @param context   上下文对象
     * @param name      数据库名称
     * @param factory   一个可选的游标工厂
     * @param version   当前数据库的版本，值必须是整数并且是递增的状态
     */
    public DatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        // 通过super调用父类的构造函数
        super(context, name, factory, version);
    }

    public DatabaseHelper(Context context) {
            this(context, User.DATABASE_NAME,null,VERSION);
    }

    /**
     * 调用时刻：数据库第一次创建时调用
     * 作用：创建数据库 表&初始化数据
     * SQLite数据库创建支持的数据类型：整型数据、字符串类型、日期类型、二进制
     * @param db 数据库对象
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE " + User.TABLE_NAME +" (" +
                        User.ACCOUNT + " varchar(16) primary key," +
                        User.PASSWORD + " varchar(32)" +
                    ")";
        db.execSQL(sql);
        String fileSql = "CREATE TABLE " + FileModel.FILE_TABLE_NAME + " (" +
                            FileModel.FILE_NAME + " VARCHAR(64) PRIMARY KEY," +
                            FileModel.FILE_MD5 + " VARCHAR(32)" +
                        ")";
        db.execSQL(fileSql);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

}
